/**
 *
 * @param str 传入被校验手机号身份证
 * @param type 校验类型 'phone','email', 'password'
 * @param option 高级校验配置 {}
 * @returns {*} false校验失败， true校验成功
 */

export default function (str, type, option={}) {
    let types = {
        phone() { // 校验手机号
            return this.typeCheckFn(/^1[3456789]\d{9}$/.test(str))
        },
        email() { // 校验邮箱
            let checkEmail = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
            return this.typeCheckFn(checkEmail.test(str))
        },
        password() {
            let checkPassword = /^[\da-zA-Z~!@#$%^&*()\./]{4,20}$/g;
            return this.typeCheckFn(checkPassword.test(str))
        },
        typeCheckFn(reg) { // 校验函数 reg校验规则
            if (reg) return true
            return false
        },
    }
    return types[type]();
}